<?php
/**
 * alltosun.com store.php
 * ============================================================================
 * 版权所有 (C) 2009-2011 北京互动阳光科技有限公司，并保留所有权利。
 * 网站地址: http://www.alltosun.com
 * ----------------------------------------------------------------------------
 * 许可声明：这是一个开源程序，未经许可不得将本软件的整体或任何部分用于商业用途及再发布。
 * ============================================================================
 * $Author: 高昂 (gaoa@alltosun.com) $
 * $Date: 2016-1-15 下午4:05:44 $
 * $Id: $
 */

class store_widget
{
    /**
     * 返回抱抱币规则
     * @return string
     */
    public function get_baobaob_rule_text($type, $is_bbcoin_enable='')
    {
        if (strtolower($type) == 'store') {
            return <<<EOT
Q:抱抱币有什么作用？
在抱抱堂、抱抱币是可以用于进货、流通的货币。通过掌柜端在向合伙人下订单的时候用于充当钱使用（1个抱抱币等于1元人民币）。

Q:如何获取更多的抱抱币?
使用掌柜端APP进【散装货品】时候 每箱得到5个抱抱币，未来还会推出各种有趣的活动奖励数量可观的抱抱币，尽请期待吧！

Q:在哪里可以看到抱抱币？
掌柜端请点击首页右下角【我的】进入【掌柜个人中心】查询。进货时均会展示现有抱抱币数量，未来可直接进行抵扣。

Q:抱抱币何时可以开始用于进货？
抱抱币目前仅可以开始累积，下订单时您可以看到本次进货可得到的抱抱币，及您当前拥有的抱抱币总数！预计6月底即可使用抱抱币用于进货，请留意通知。

Q:抱抱币何时到账？
抱抱币将在下单时明确告知可获得的数量，在收到货后必须【确认到货】才会到账；若订单撤销、订单未收货将不会到账。

Q:抱抱币解释权
抱抱币不可转让、不设上限；抱抱堂公司保留对抱抱币规则的最终解释权。

其他问题请在工作时间（周一至周六 9:00-18:00）联系：
拨打400-865-0003 转6.

EOT;
        } else if (strtolower($type) == 'agency') {
            return <<<EOT
Q:显示（暂未开始）如何开启抱抱币?
您的抱抱币功能暂未启用，开放功能必须达到：您80%的门店已在APP签约并绑定（根据合伙人从总部认领的历史设备数量的80% 如您认领过100台机器 您必须有至少80家门店已签约并绑定设备即可达标 ），达标或咨询请联系客服人员为您处理：400-865-0003 转6.

Q:显示（开始累积）是否可立即使用？
您的抱抱币功能已经开启累积功能但尚不能立即使用，您签约的掌柜终端只要向您进散装货品就会产生每箱=5个抱抱币到【掌柜端】，掌柜可在未来进货中将抱抱币转移给合伙人，您也可以使用抱抱币通过【合伙人端】向总部进货。【抱抱币进货开启时间】将在6月下旬，尽请期待！

Q:抱抱币何时可以开始用于进货？
抱抱币目前仅可以开始累积，越早开始终端即可越早产生抱抱币，请及时安装掌柜端达标哦！预计6月底即可使用抱抱币用于进货，如有特殊需求请联系客服人员为您处理：400-865-0003 转6.

Q:抱抱币有什么作用？
在抱抱堂、抱抱币是可以用于进货、流通的货币。合伙人及终端门店均可在下订单的时候用于充当钱使用（1个抱抱币等于1元人民币）。

Q:如何获取更多的抱抱币?
1）掌柜终端进散装货品时候 每箱得到5个抱抱币 当掌柜向合伙人进货时可以累积使用并转移给合伙人，合伙人向总部进货可以使用 ; 2）影院向合伙人进货，由于未向合伙人支付货款，送货后上传送货单即可获得同等货值的抱抱币，在影院向总部结款后会获得利润部分的抱抱币 ；3）合伙人及掌柜终端通过参与官方活动也可以获得可观的抱抱币、敬请留意通知。

Q:合伙人和终端掌柜在抱抱币上的区别？
如上再次强调：合伙人的抱抱币来自于 1)掌柜进货转移给合伙人 2)影院进货总部给与抵充货款 3）参与活动获得奖励 ；掌柜端的抱抱币来源目前只有一个方式：向合伙人进货【三款散装】每箱可以获得5个抱抱币。

Q:抱抱币何时到账？
抱抱币将在下单时明确告知可获得的数量，在收到货后请【确认到货】后会立即到账；若订单撤销、订单未收货将不会到账。【影院抵充货款抱抱币】必须在确认到货后上传送货单审核通过到账，送货单请保持清晰否则无法通过。

Q:在哪里可以看到抱抱币？
合伙人端请点击左上角进入【合伙人个人中心】查询抱抱币数量，掌柜端请点击右下角我的进入【掌柜个人中心】查询。进货时均会展示现有抱抱币数量，未来可直接进行抵扣。

Q:哪些情况会导致抱抱币减扣？
抱抱币可以在进货时被用于抵扣货款，使用后将减扣；若发现有违规行为 如通过不正当方式恶意获取，抱抱币将会被减扣甚至清零。

Q:抱抱币解释权
抱抱币不可转让、不设上限；抱抱堂公司保留对抱抱币规则的最终解释权。

其他问题请在工作时间（周一至周六 9:00-18:00）联系：
拨打400-865-0003 转6.
EOT;
        }

    }

    /**
     * 返回抱抱币规则
     * @return string
     */
    public function get_baobaob_rule_text2()
    {
       return <<<EOT
Q:积分能为我带来什么?
在抱抱堂，您累积的积分可以为你的经验值获取货真价实的福利,比如兑换各种超值物料、领取抱抱堂合作伙伴定期派发的奖品、参与抽奖获取抱抱堂赠送的电影相关礼品。

Q:如何获取更多的积分？
在抱抱堂，您的日常经营如进货、核销都可以获得相应的积分。积分将在未来成为抱抱堂奖励及优惠下发的判定标准、赶紧储备你的积分吧！

Q:哪些情况会导致积分减扣?
1) 终端在巡店时未参与张贴海报或不开视频 扣10分；2) 跨区销售 扣100分 3) 价格违规 扣10分 4)其它违反抱抱堂终端协议约定的事项 ；提醒：为了严格执行全国网点的统一巡店策略和随机取样，我们十分遗憾会出现以上情况积分减扣的发生，请务必留意。

Q:积分何时到账?
1) 在系统上完成的核销积分会立即生成到账户 2) 进货获得的相应积分将在确认到货时到账 3) 参与特殊活动执行如海报及展架等需要经销商拍照验证后到账。温馨提示：所有积分记录都可以在积分板块里查询、积分到账时会有系统及短信提示。

Q:积分解释权
积分不可转让、不设上限；若发生退换货积分将被退回。抱抱堂保留对积分规则的最终解释权。

其它问题请在工作时间拨打：400-865-0003
EOT;
    }

    /**
     * 删除门店伪删除，手机号保留
     * 用户登录禁用
     * 解绑设备
     */
    public function del_user_store2($user_id, $owner_id)
    {
        $user_store_info = store_helper::get_user_store_info($owner_id);
        if (!$user_store_info) {
            return false;
        }

        if ($user_store_info['agency_id'] != $user_id) {
            return false;
        }

        $result = _model('user_store')->update(array('user_id'=>$owner_id), array('status'=>0, 'is_delete'=>0));
        if ($result) {
           return user_helper::update_user_status($owner_id, 0);
        }

        return false;
    }

    /**
     * 删除门店伪删除，手机号保留
     * 用户登录禁用
     * 解绑设备
     */
    public function del_user_store($user_id, $owner_id)
    {
        $user_store_info = store_helper::get_user_store_info($owner_id);
        if (!$user_store_info) {
            return false;
        }

        if ($user_store_info['agency_id'] != $user_id) {
            return false;
        }

        // 先禁用所有分店
        $store_user_ids = array();
        $store_ids      = array();

        $store_list = store_helper::get_user_store_list_id($owner_id);
        if ($store_list) {
            $store_ids = array();
            foreach ($store_list as $val) {
                $store_ids[] = $val['id'];
                $store_user_ids[] = $val['user_id'];
            }
        }

        if ($store_ids) {
            _model('store')->update($store_ids,array('is_delete'=>0, 'status'=>0));
            user_helper::update_mutil_user_status($store_user_ids, 0);
        }

        $result = _model('user_store')->update(array('user_id'=>$owner_id), array('status'=>0));
        if ($result) {
           return user_helper::update_user_status($owner_id, 0);
        }

        return false;
    }

    /**
     * 更新总店
     */
    public function update_user_store($user_id, $owner_id, $name, $title, $type, $cert_type, $cert_idcard_front, $is_cert_idcard_front, $cert_idcard_back, $is_cert_idcard_back, $cert_company, $is_cert_company)
    {
        if (!$owner_id) {
            return array('flag'=>false, 'info'=>'总店信息未知');
        }
        if (!$name || !$title) {
            return array('flag'=>false, 'info'=>'编辑信息不全');
        }

        if (!array_key_exists($type, store_config::$type_arr)) {
            return array('flag'=>false, 'info'=>'门店类型错误');
        }

        $role_id = user_helper::get_user_role_id($user_id);
        $allow_user = array(user_config::AGENCY, user_config::MARKETING);
        if (!in_array($role_id, $allow_user)) {
            return array('flag'=>false, 'info'=>'没有此操作权限');
        }

        $owner_user_store_info = _uri('user_store', array('user_id'=>$owner_id));
        if (!$owner_user_store_info) {
            return array('flag'=>false, 'info'=>'总店信息不存在');
        }

        $owner_user_info = _uri('user', array('id'=>$owner_id));
        if (!$owner_user_info) {
            return array('flag'=>false, 'info'=>'用户不存在');
        }

        $owner_store_info = _uri('store', array('owner_id'=>$owner_id, 'store_order'=>1));
        if (!$owner_store_info) {
            return array('flag'=>false, 'info'=>'第一家分店信息不存在');
        }
        // 事务修改
        ts_helper::begin();
        try {
            // 先改总店和总店用户(如果标题变了则改变分店的主店的title)
            if ($name != $owner_user_info['realname']) {
                $user_affected = user_helper::update_user_info($owner_id, array('realname'=>$name));
                if (!$user_affected) {
                    ts_helper::rollback();
                    return array('flag'=>false, 'info'=>'用户更新失败');
                }
            }

            if ($title != $owner_store_info['title'] || $type != $owner_store_info['type']) {
                // 更新分店title和类型
                $store_affected = _model('store')->update(array('owner_id'=>$owner_id), array('title'=>$title, 'type'=>$type));
                if (!$store_affected) {
                    ts_helper::rollback();
                    return array('flag'=>false, 'info'=>'门店名称更新失败');
                }
            }

            $user_store_info = array();
            $user_store_info['cert_type'] = $cert_type;
            $user_store_info['title']     = $title;
            $user_store_info['type']      = $type;
            if ($is_cert_idcard_front) {
                if (substr($cert_idcard_front, -3) != 'png') {
                    ts_helper::rollback();
                    return array('flag'=>false, 'info'=>'身份证正面照图片格式错误');
                }
                $user_store_info['cert_idcard_front'] = $cert_idcard_front;
            }
            if ($is_cert_idcard_back) {
                if (substr($cert_idcard_back, -3) != 'png') {
                    ts_helper::rollback();
                    return array('flag'=>false, 'info'=>'身份证背面照图片格式错误');
                }
                $user_store_info['cert_idcard_back'] = $cert_idcard_back;
            }
            if ($is_cert_company) {
                if (substr($cert_company, -3) != 'png') {
                    ts_helper::rollback();
                    return array('flag'=>false, 'info'=>'身份证背面照图片格式错误');
                }
                $user_store_info['cert_company'] = $cert_company;
            }

            _model('user_store')->update($owner_user_store_info['id'], $user_store_info);

            ts_helper::commit();

        } catch (Exception $e) {
            ts_helper::trace_log($e);
            ts_helper::rollback();
        }

        return array('flag'=>true, 'info'=>'操作成功');
    }

    /**
     * 更新分店
     */
    public function update_store_info($user_id, $store_id, $name, $mobile, $title_branch, $address, $cover, $is_cover)
    {
        if (!$store_id) {
            return array('flag'=>false, 'info'=>'分店未知');
        }

        if (!$name || !$title_branch || !$address || !$cover || !$mobile) {
            return array('flag'=>false, 'info'=>'编辑信息不全');
        }

        $reg = '/^1[3|4|5|7|8]\d{9}$/';
        if (!preg_match($reg, $mobile)) {
            return array('flag'=>false, 'info'=>'手机号格式错误');
        }

        $allow_user = array(user_config::AGENCY, user_config::MARKETING);
        $role_id = user_helper::get_user_role_id($user_id);
        if (!in_array($role_id, $allow_user)) {
            return array('flag'=>false, 'info'=>'没有此操作权限');
        }

        $store_info = store_helper::get_store($store_id);
        if (!$store_info) {
            return array('flag'=>false, 'info'=>'分店信息不存在');
        }

        $store_user_info = user_helper::get_user_info($store_info['user_id']);
        if (!$store_user_info) {
            return array('flag'=>false, 'info'=>'店主信息不存在');
        }

        // 事务修改
        ts_helper::begin();
        try {
            // 修改店主用户信息在修改门店信息
            if ($name != $store_user_info['realname'] || $mobile != $store_user_info['mobile']) {
                $update_store = array();
                $update_store['realname'] = $name;
                // 暂时不能更新第一家分店  @TODO
                if (@$store_user_info['store_order'] != 1) {
                    $update_store['mobile'] = $mobile;
                }

                $mobile_user_info = user_helper::get_user_info_by_mobile($mobile);
                if ($mobile_user_info) {
                    $mobile_role_id = user_helper::get_user_role_id($mobile_user_info['id']);
                    if (in_array($mobile_role_id, array(user_config::STORE_MANAGER, user_config::STORE_OWNER))) {
                        // 门店允许和主店的重复
                        if ($mobile_user_info['id'] != $store_user_info['id'] && $store_info['owner_id'] != $mobile_user_info['id']) {
                            return array('flag'=>false, 'info'=>'手机号被占用');
                        }
                    } else {
                        if ($mobile_user_info['id'] != $store_user_info['id']) {
                            return array('flag'=>false, 'info'=>'手机号被占用');
                        }
                    }
                }

                $user_affected = user_helper::update_user_info($store_user_info['id'], $update_store);
                if (!$user_affected) {
                    return array('flag'=>false, 'info'=>'用户信息更新失败');
                }
            }

            $store = array();
            $store['title_branch'] = $title_branch;
            if ($is_cover) {
                $store['cover']    = $cover;
            }
            $store['address']      = $address;

            _model('store')->update($store_id, $store);

            ts_helper::commit();

        } catch (Exception $e) {
            ts_helper::trace_log($e);
            ts_helper::rollback();
        }

        return array('flag'=>true, 'info'=>'修改成功');
    }

    /**
     * 创建总店
     * @param unknown $cur_user_info 登录用户信息 $this->user_info
     * @param unknown $name 商户名
     * @param unknown $mobile 手机号
     * @param unknown $title 店铺名
     * @param unknown $type 店铺类型
     * @param unknown $cert_type 认证类型
     * @param unknown $cert_idcard_front 身份证正面照
     * @param unknown $cert_idcard_back 身份证背面照
     * @param unknown $cert_company 营业执照
     * @return multitype:boolean string |multitype:boolean multitype:unknown Ambigous <string, intval>
     */
    public function create_new_user_store($cur_user_info, $name, $mobile, $title, $type, $cert_type, $cert_idcard_front, $cert_idcard_back, $cert_company)
    {
        $reg = '/^1[3|4|5|7|8]\d{9}$/';
        if (!preg_match($reg, $mobile)) {
            return array(false, '手机号格式错误');
        }

        if ($cur_user_info['role_type'] == user_config::AGENCY) {
            // 如果是 经销商 身份
            $agency_id    = $cur_user_info['id'];
            $marketing_id = $cur_user_info['id'];
        } elseif ($cur_user_info['role_type'] == user_config::MARKETING) {
            // 如果是 市场人员 身份
            $arr = _model('user_marketing')->read(array(
                'marketing_id' => $cur_user_info['id']
            ));
            $agency_id = $arr['agency_id'];
            $marketing_id = $cur_user_info['id'];
        } else {
            return array(false, '身份不对');
        }

        $agency_user = user_helper::get_user_info($agency_id);

        //先创建 用户信息
        //$user_id = user_helper::create_user();
        $user_info = array(
            'user_name' => $mobile,
            'realname'  => $name,
            'nickname'  => $name,
            'mobile'    => $mobile,
        );

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $user_info['is_enable']  = 0;
        }

        $role_type = user_config::STORE_OWNER;
        $ret_user = user_helper::create_user($user_info, $role_type);
        if (empty($ret_user)) {
            return array(false, '用户创建失败');
        }

        $user_id  = $ret_user['user_id'];
        $password = $ret_user['password'];

        //添加总店信息
        $insert_arr = array(
            'user_id'           => $user_id,
            'agency_id'         => $agency_id,
            'marketing_id'      => $marketing_id,

            'cert_type'         => $cert_type,
            'cert_idcard_front' => $cert_idcard_front,
            'cert_idcard_back'  => $cert_idcard_back,
            'cert_company'      => $cert_company,

            'sign_user_id'      => $cur_user_info['id'],
            'sign_time'         => datetime(),
            'add_time'          => datetime(),
        );
        $insert_arr['type'] = $type;
        $insert_arr['title'] = $title;

        $user_store_id = _model('user_store')->create($insert_arr);

        global  $mc_wr;
        $mc_wr->set('store_passowrd_'.$user_id, $password, 60);

        if (!$user_store_id) {
            return array(false, '创建总店出错了');
        } else {
            return array(true, $user_id);
        }
    }


    /**
     * 创建分店
     * @param unknown_type $user_id   用户ID
     * @param unknown_type $owner_id  经销商ID
     * @param unknown_type $mobile    手机号
     * @param unknown_type $name      真实用户名
     * @param unknown_type $title     店铺标题
     * @param unknown_type $title_branch  分店标题
     * @param unknown_type $type          类型
     * @param unknown_type $address_code  地址代码
     * @param unknown_type $address       详细地址
     * @param unknown_type $longitude     经纬度
     * @param unknown_type $latitude
     * @param unknown_type $cover         图片
     * @return multitype:boolean string |multitype:boolean multitype:unknown string Ambigous <unknown, string>
     */
    public function create_store($user_id, $owner_id, $mobile, $name, $title, $title_branch, $type, $address_code, $address, $longitude, $latitude, $cover, $user_info)
    {
        if (!$user_id) {
            return array(false, '请登录后操作!');
        }

        if (!$owner_id) {
            return array(false, '缺少总店ID');
        }

        if (!$mobile) {
            return array(false, '请填写手机号');
        }

//         $reg = '/^1[3|4|5|7|8]\d{9}$/';
//         if (!preg_match($reg, $mobile)) {
//             return array(false, '手机号格式错误');
//         }

        if ($user_info['role_type'] == user_config::AGENCY) {

            // 如果是 经销商 身份
            $agency_id = $user_id;
            $marketing_id = $user_id;

        } elseif ($user_info['role_type'] == user_config::MARKETING) {
            // 如果是 市场人员 身份
            $arr = _model('user_marketing')->read(array(
                    'marketing_id' => $user_id
            ));

            $agency_id = $arr['agency_id'];
            $marketing_id = $user_id;
        } else {
            return array(false,'身份不对');
        }

        //查询总店信息
        //$user_id = Request::Get('user_id', 0);

        $user_store = store_helper::get_user_store($owner_id);
        if (empty($user_store)) {
            return array(false, '店铺不存在');
        }

        $owner_info = user_helper::get_user_info($owner_id);

        /*
         if (!$title || !$address) {
        api_helper::return_data(1, '必填信息不能为空');
        }

        if (in_array($type, store_config::$type_arr)) {
        api_helper::return_data(1, '门店类型不对');
        }
        */

        $store_cnt = _model('store')->getTotal(array(
                'owner_id' => $owner_id,
        ));

        $user_owner = user_helper::get_user_info($owner_id);
        if (!$user_owner) {
            return array(false, '获取总店信息失败!');
        }

        // 先创建 用户信息
        $user_name = user_helper::get_store_manger_username($user_owner['user_name'], $store_cnt + 1);
        $user_info = array(
                'user_name' => $user_name,
                'realname'  => $name,
                'nickname'  => $name,
                'mobile'    => $mobile,
                'store_parent_id' => $user_owner['id']
        );

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $user_info['is_enable']  = 1;
        }

        $role_type = user_config::STORE_MANAGER;
        $ret_user = user_helper::create_user($user_info, $role_type);
        if (empty($ret_user)) {
            return array(false, '用户创建失败');
        }

        $update_arr = array(
                'user_id'      => $ret_user['user_id'],
                'owner_id'     => $owner_id,
                'agency_id'    => $agency_id,
                'marketing_id' => $marketing_id,
                'store_order'  => $store_cnt + 1,
                'is_chain'     => $store_cnt >= 1 ? 1 : 0,
                'sign_user_id' => $user_id,
                'sign_time'    => datetime(),
        );

        $uparr = array('title', 'title_branch', 'address', 'longitude', 'latitude', 'cover',);
        foreach ($uparr as $k) {
            $v = Request::Post($k, '');
            if (!empty($v)) {
                $update_arr[$k] = trim($v);
            }
        }

        //省市县编码
        $province_id = $city_id = $district_id = 0;
        if ($address_code >= 100000 && $address_code <= 999999) {
            $province_id = substr($address_code, 0, 2) . '0000';
            $city_id = substr($address_code, 0, 4) . '00';
            $district_id = $address_code;

            $update_arr['province_id'] = $province_id;
            $update_arr['city_id']     = $city_id;
            $update_arr['district_id'] = $district_id;
        }

        if ($type > 0 && isset(store_config::$type_arr[$type])) {
            $update_arr['type'] = $type;
        }

        if (empty($update_arr)) {
            return array(false, '请输入相关资料');
        }

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $update_arr['is_enable']  = 0;
        }

        //修改分店信息
        $sotre_id = _model('store')->create($update_arr);

        if ($sotre_id) {
            //更新总店信息
            $update_arr = array(
                    'store_num' => $store_cnt + 1,
            );

            if ($store_cnt <= 0) {
                $update_arr['type'] = $type;
                $update_arr['title'] = $title;
            }

            $filter = array(
                    'user_id' => $owner_id,
            );
            $user_store_info = _model('user_store')->read($filter);
            if ($user_store_info) {

                $isok = _model('user_store')->update($user_store_info['id'], $update_arr);

                if ($store_cnt <= 0) {
                    // 初始合伙人的商品
                    // 合伙人 store 总店ID
                    // 合伙人 user_store 总店ID FUCK
                    // 合伙人 user_store 总店ID
                    $user_id       = $user_store_info['user_id'];
                    $user_store_id = $user_store_info['id'];
                    store_helper::init_store_goods_price($user_id, $user_store_id);
                }
            }

            $ret = array(
                    'store_id'  => $sotre_id,
                    'owner_id'  => $owner_id,
                    'user_id'   => $ret_user['user_id'],
                    'user_name' => $user_name,
                    'password'  => $ret_user['password'],
            );

            $password =  $ret_user['password'];

            // 第一个分店，密码应该下发总店密码
            if ($store_cnt == 0) {
                global $mc_wr;
                $password  = $mc_wr->get('store_passowrd_'.$owner_id);
                $user_name = $user_owner['user_name'];
                $mobile    = $user_owner['mobile'];
            }

            // $mobile = $user_owner['mobile'];
            $marketing_user_info = user_helper::get_user_info($marketing_id);
            $agency_user_info    = user_helper::get_user_info($agency_id);

            // 下发短信需要的店铺信息

            // 店铺的完整标题
            $sms_store_info['store_title'] = $title.$title_branch;
            // 店铺的名字
            $sms_store_info['user_name']   = $user_name;
            // 店铺的密码
            $sms_store_info['passowrd']    = $password;
            // 发给谁，总店的号码
            $sms_store_info['mobile']      = $mobile;

            // 下发短信，市场人员信息
            $sms_market_info['market_user_name'] = $marketing_user_info['realname'];
            $sms_market_info['market_user_id']   = $marketing_id;
            $sms_market_info['market_mobile']    = $marketing_user_info['mobile'];

            // 下发短信，经销商信息
            $sms_agency_info['agency_mobile'] = $agency_user_info['mobile'];
            $sms_agency_info['agency_id']     = $agency_id;
            $sms_agency_info['user_name']     = $agency_user_info['realname'];

            _widget('store.message')->market_create_store_message($sms_store_info, $sms_market_info, $sms_agency_info);

            if (isset($ret['password'])) {
                unset($ret['password']);
            }

            return array(true, $ret);
        }

        return array(false, '创建店铺失败');
    }

    /**
     * 创建总店2 批量生成门店御用方法
     * @param unknown $cur_user_info 登录用户信息 $this->user_info
     * @param unknown $name 商户名
     * @param unknown $mobile 手机号
     * @param unknown $title 店铺名
     * @param unknown $type 店铺类型
     * @param unknown $cert_type 认证类型
     * @param unknown $cert_idcard_front 身份证正面照
     * @param unknown $cert_idcard_back 身份证背面照
     * @param unknown $cert_company 营业执照
     * @return multitype:boolean string |multitype:boolean multitype:unknown Ambigous <string, intval>
     */
    public function create_new_user_store_new($cur_user_info, $name, $mobile, $title, $type, $cert_type, $cert_idcard_front, $cert_idcard_back, $cert_company)
    {
        $reg = '/^1[3|4|5|7|8]\d{9}$/';
        if (!preg_match($reg, $mobile)) {
            return array(false, '手机号格式错误');
        }

        if ($cur_user_info['role_type'] == user_config::AGENCY) {
            // 如果是 经销商 身份
            $agency_id    = $cur_user_info['id'];
            $marketing_id = $cur_user_info['id'];
        } elseif ($cur_user_info['role_type'] == user_config::MARKETING) {
            // 如果是 市场人员 身份
            $arr = _model('user_marketing')->read(array(
                'marketing_id' => $cur_user_info['id']
            ));
            $agency_id = $arr['agency_id'];
            $marketing_id = $cur_user_info['id'];
        } else {
            return array(false, '身份不对');
        }

        $agency_user = user_helper::get_user_info($agency_id);

        //先创建 用户信息
        //$user_id = user_helper::create_user();
        $user_info = array(
            'user_name' => $mobile,
            'realname'  => $name,
            'nickname'  => $name,
            'mobile'    => $mobile,
            'is_auto'   => 1,
        );

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $user_info['is_enable']  = 0;
        }

        $password = substr($mobile, -6);

        $role_type = user_config::STORE_OWNER;
        $ret_user = user_helper::create_user($user_info, $role_type, $password);
        if (empty($ret_user)) {
            return array(false, '用户创建失败');
        }

        $user_id  = $ret_user['user_id'];
        $password = $ret_user['password'];

        //添加总店信息
        $insert_arr = array(
            'user_id'           => $user_id,
            'agency_id'         => $agency_id,
            'marketing_id'      => $marketing_id,

            'cert_type'         => $cert_type,
            'cert_idcard_front' => $cert_idcard_front,
            'cert_idcard_back'  => $cert_idcard_back,
            'cert_company'      => $cert_company,

            'sign_user_id'      => $cur_user_info['id'],
            'sign_time'         => datetime(),
            'add_time'          => datetime(),
        );
        $insert_arr['type'] = $type;
        $insert_arr['title'] = $title;

        $user_store_id = _model('user_store')->create($insert_arr);

        global  $mc_wr;
        $mc_wr->set('store_passowrd_'.$user_id, $password, 60);

        if (!$user_store_id) {
            return array(false, '创建总店出错了');
        } else {
            return array(true, $ret_user);
        }
    }


    /**
     * 创建分店2批量生成门店御用方法
     * @param unknown_type $user_id   用户ID
     * @param unknown_type $owner_id  经销商ID
     * @param unknown_type $mobile    手机号
     * @param unknown_type $name      真实用户名
     * @param unknown_type $title     店铺标题
     * @param unknown_type $title_branch  分店标题
     * @param unknown_type $type          类型
     * @param unknown_type $address_code  地址代码
     * @param unknown_type $address       详细地址
     * @param unknown_type $longitude     经纬度
     * @param unknown_type $latitude
     * @param unknown_type $cover         图片
     * @return multitype:boolean string |multitype:boolean multitype:unknown string Ambigous <unknown, string>
     */
    public function create_store_new($user_id, $owner_id, $mobile, $name, $title, $title_branch, $type, $address_code, $address, $longitude, $latitude, $cover, $user_info)
    {
        if (!$user_id) {
            return array(false, '请登录后操作!');
        }

        if (!$owner_id) {
            return array(false, '缺少总店ID');
        }

        if (!$mobile) {
            return array(false, '请填写手机号');
        }

        if ($user_info['role_type'] == user_config::AGENCY) {

            // 如果是 经销商 身份
            $agency_id = $user_id;
            $marketing_id = $user_id;

        } elseif ($user_info['role_type'] == user_config::MARKETING) {
            // 如果是 市场人员 身份
            $arr = _model('user_marketing')->read(array(
                'marketing_id' => $user_id
            ));

            $agency_id = $arr['agency_id'];
            $marketing_id = $user_id;
        } else {
            return array(false,'身份不对');
        }

        //查询总店信息
        //$user_id = Request::Get('user_id', 0);

        $user_store = store_helper::get_user_store($owner_id);
        if (empty($user_store)) {
            return array(false, '店铺不存在');
        }

        $owner_info = user_helper::get_user_info($owner_id);

        /*
         if (!$title || !$address) {
        api_helper::return_data(1, '必填信息不能为空');
        }

        if (in_array($type, store_config::$type_arr)) {
        api_helper::return_data(1, '门店类型不对');
        }
        */

        $store_cnt = _model('store')->getTotal(array(
            'owner_id' => $owner_id,
        ));

        $user_owner = user_helper::get_user_info($owner_id);
        if (!$user_owner) {
            return array(false, '获取总店信息失败!');
        }

        // 先创建 用户信息
        $user_name = user_helper::get_store_manger_username($user_owner['user_name'], $store_cnt + 1);
        $user_info = array(
            'user_name'       => $user_name,
            'realname'        => $name,
            'nickname'        => $name,
            'mobile'          => $mobile,
            'store_parent_id' => $user_owner['id'],
            'is_auto'         => 1,
        );

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $user_info['is_enable']  = 1;
        }

        $role_type = user_config::STORE_MANAGER;
        $ret_user = user_helper::create_user($user_info, $role_type);
        if (empty($ret_user)) {
            return array(false, '用户创建失败');
        }

        $update_arr = array(
            'user_id'      => $ret_user['user_id'],
            'owner_id'     => $owner_id,
            'agency_id'    => $agency_id,
            'marketing_id' => $marketing_id,
            'store_order'  => $store_cnt + 1,
            'is_chain'     => $store_cnt >= 1 ? 1 : 0,
            'sign_user_id' => $user_id,
            'sign_time'    => datetime(),
        );

        $uparr = array('title', 'title_branch', 'address', 'longitude', 'latitude', 'cover',);

        $update_arr['title']        = $title;
        $update_arr['title_branch'] = $title_branch;
        $update_arr['address']      = $address;
        $update_arr['longitude']    = $longitude;
        $update_arr['latitude']     = $latitude;
        $update_arr['cover']        = $cover;

        //省市县编码
        $province_id = $city_id = $district_id = 0;
        if ($address_code >= 100000 && $address_code <= 999999) {
            $province_id = substr($address_code, 0, 2) . '0000';
            $city_id = substr($address_code, 0, 4) . '00';
            $district_id = $address_code;

            $update_arr['province_id'] = $province_id;
            $update_arr['city_id']     = $city_id;
            $update_arr['district_id'] = $district_id;
        }

        if ($type > 0 && isset(store_config::$type_arr[$type])) {
            $update_arr['type'] = $type;
        }

        if (empty($update_arr)) {
            return array(false, '请输入相关资料');
        }

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $update_arr['is_enable']  = 0;
        }

        //修改分店信息
        $sotre_id = _model('store')->create($update_arr);

        if ($sotre_id) {
            //更新总店信息
            $update_arr = array(
                'store_num' => $store_cnt + 1,
            );

            if ($store_cnt <= 0) {
                $update_arr['type'] = $type;
                $update_arr['title'] = $title;
            }

            $filter = array(
                'user_id' => $owner_id,
            );
            $user_store_info = _model('user_store')->read($filter);
            if ($user_store_info) {

                $isok = _model('user_store')->update($user_store_info['id'], $update_arr);

                if ($store_cnt <= 0) {
                    // 初始合伙人的商品
                    // 合伙人 store 总店ID
                    // 合伙人 user_store 总店ID FUCK
                    // 合伙人 user_store 总店ID
                    $user_id       = $user_store_info['user_id'];
                    $user_store_id = $user_store_info['id'];
                    store_helper::init_store_goods_price($user_id, $user_store_id);
                }
            }

            $ret = array(
                'store_id'  => $sotre_id,
                'owner_id'  => $owner_id,
                'user_id'   => $ret_user['user_id'],
                'user_name' => $user_name,
                'password'  => $ret_user['password'],
            );

            $password =  $ret_user['password'];

            // 第一个分店，密码应该下发总店密码
            if ($store_cnt == 0) {
                global $mc_wr;
                $password  = $mc_wr->get('store_passowrd_'.$owner_id);
                $user_name = $user_owner['user_name'];
                $mobile    = $user_owner['mobile'];
            }

            // $mobile = $user_owner['mobile'];
//             $marketing_user_info = user_helper::get_user_info($marketing_id);
//             $agency_user_info    = user_helper::get_user_info($agency_id);

//             // 下发短信需要的店铺信息

//             // 店铺的完整标题
//             $sms_store_info['store_title'] = $title.$title_branch;
//             // 店铺的名字
//             $sms_store_info['user_name']   = $user_name;
//             // 店铺的密码
//             $sms_store_info['passowrd']    = $password;
//             // 发给谁，总店的号码
//             $sms_store_info['mobile']      = $mobile;

//             // 下发短信，市场人员信息
//             $sms_market_info['market_user_name'] = $marketing_user_info['realname'];
//             $sms_market_info['market_user_id']   = $marketing_id;
//             $sms_market_info['market_mobile']    = $marketing_user_info['mobile'];

//             // 下发短信，经销商信息
//             $sms_agency_info['agency_mobile'] = $agency_user_info['mobile'];
//             $sms_agency_info['agency_id']     = $agency_id;
//             $sms_agency_info['user_name']     = $agency_user_info['realname'];

//             _widget('store.message')->market_create_store_message($sms_store_info, $sms_market_info, $sms_agency_info);

            return array(true, $ret);
        }

        return array(false, '创建店铺失败');
    }


    // 获取设备好绑定记录
    public function get_device_no_record($device_id, $device_no)
    {
        if (!$device_id) {
            return false;
        }
        $type = device_helper::get_device_type_by_code($device_no);
        $record_list = _model('store_device_record')->getList(array('dev_id'=>$device_id, 'type'=>$type));

        if ($record_list) {
            foreach ($record_list as $k=>$v){
                $store_info = store_helper::get_store_info($v['store_id']);
                if ($store_info['title_branch']) {
                    $record_list[$k]['store_title'] = $store_info['title'].'（'.$store_info['title_branch'].'）';
                } else {
                    $record_list[$k]['store_title'] = $store_info['title'];
                }

            }
        } else {
            return array();
        }

        return $record_list;

    }



    //总店  cinema_h5
    public function create_new_user_store_tmp($cur_user_info, $name, $mobile, $title, $type, $cert_type, $cert_idcard_front, $cert_idcard_back, $cert_company, $agency_id)
    {
        $reg = '/^1[3|4|5|7|8]\d{9}$/';
        if (!preg_match($reg, $mobile)) {
            return array(false, '手机号格式错误');
        }

        if ($cur_user_info['role_type'] == user_config::CINEMA_ASSISTANT) {
            // 如果是 影管专员 身份
            $arr = _model('user_marketing')->read(array(
                'marketing_id' => $cur_user_info['id']
            ));
            $agency_id =  $agency_id;
            $marketing_id = $cur_user_info['id'];
        }else {
            return array(false, '身份不对');
        }

        $agency_user = user_helper::get_user_info($agency_id);

        //先创建 用户信息
        //$user_id = user_helper::create_user();
        $user_info = array(
            'user_name' => $mobile,
            'realname'  => $name,
            'nickname'  => $name,
            'mobile'    => $mobile,
        );

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $user_info['is_enable']  = 0;
        }

        $role_type = user_config::STORE_OWNER;
        $ret_user = user_helper::create_user($user_info, $role_type);
        if (empty($ret_user)) {
            return array(false, '用户创建失败');
        }

        $user_id  = $ret_user['user_id'];
        $password = $ret_user['password'];

        //添加总店信息
        $insert_arr = array(
            'user_id'           => $user_id,
            'agency_id'         => $agency_id,
            'marketing_id'      => $marketing_id,

            'cert_type'         => $cert_type,
            'cert_idcard_front' => $cert_idcard_front,
            'cert_idcard_back'  => $cert_idcard_back,
            'cert_company'      => $cert_company,

            'sign_user_id'      => $cur_user_info['id'],
            'sign_time'         => datetime(),
            'add_time'          => datetime(),
        );
        $insert_arr['type'] = $type;
        $insert_arr['title'] = $title;

        $user_store_id = _model('user_store')->create($insert_arr);

        global  $mc_wr;
        $mc_wr->set('store_passowrd_'.$user_id, $password, 60);

        if (!$user_store_id) {
            return array(false, '创建总店出错了');
        } else {
            return array(true, $user_id);
        }
    }

    //分店  cinema_h5
    public function create_store_new_tmp($user_id, $owner_id, $mobile, $name, $title,
        $title_branch, $type, $address_code, $address, $longitude,
        $latitude, $cover, $user_info,$agency_id,$zzb_code, $credit_code,$company, $is_allow_credit)
    {
        if (!$user_id) {
            return array(false, '请登录后操作!');
        }

        if (!$owner_id) {
            return array(false, '缺少总店ID');
        }

        if (!$mobile) {
            return array(false, '请填写手机号');
        }

        if ($user_info['role_type'] == user_config::CINEMA_ASSISTANT) {
                // 如果是 影管专员 身份
                $arr = _model('user_marketing')->read(array(
                    'marketing_id' => $user_id
                ));

                $agency_id = $agency_id;
                $marketing_id = $user_id;
            }else {
                return array(false,'身份不对');
            }

        //查询总店信息
        //$user_id = Request::Get('user_id', 0);

        $user_store = store_helper::get_user_store($owner_id);
        if (empty($user_store)) {
            return array(false, '没查到总店信息，店铺不存在');
        }


        $store_cnt = _model('store')->getTotal(array(
            'owner_id' => $owner_id,
        ));

        $user_owner = user_helper::get_user_info($owner_id);
        if (!$user_owner) {
            return array(false, '获取总店信息失败!');
        }

        // 先创建 用户信息
        $user_name = user_helper::get_store_manger_username($user_owner['user_name'], $store_cnt + 1);
        $user_info = array(
            'user_name'       => $user_name,
            'realname'        => $name,
            'nickname'        => $name,
            'mobile'          => $mobile,
            'store_parent_id' => $user_owner['id'],
            'is_auto'         => 1,
        );

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $user_info['is_enable']  = 1;
        }

        $role_type = user_config::STORE_MANAGER;
        $ret_user = user_helper::create_user($user_info, $role_type);
        if (empty($ret_user)) {
            return array(false, '用户创建失败');
        }

        $update_arr = array(
            'user_id'      => $ret_user['user_id'],
            'owner_id'     => $owner_id,
            'agency_id'    => $agency_id,
            'marketing_id' => $marketing_id,
            'store_order'  => $store_cnt + 1,
            'is_chain'     => $store_cnt >= 1 ? 1 : 0,
            'sign_user_id' => $user_id,
            'sign_time'    => datetime(),
        );

        $uparr = array('title', 'title_branch', 'address', 'longitude', 'latitude', 'cover',);

        $update_arr['title']        = $title;
        $update_arr['title_branch'] = $title_branch;
        $update_arr['address']      = $address;
        $update_arr['longitude']    = $longitude;
        $update_arr['latitude']     = $latitude;
        $update_arr['cover']        = $cover;

        //xdq add 08-11
        $update_arr['zzb_id']                    = $zzb_code;
        $update_arr['social_credit_code']        = $credit_code;
        $update_arr['company']                   = $company;
        $update_arr['is_allow_credit']           = $is_allow_credit;
        $update_arr['cinema_assistant_id']       = $marketing_id;  //建分店时插入影院专员id


        //省市县编码
        $province_id = $city_id = $district_id = 0;
        if ($address_code >= 100000 && $address_code <= 999999) {
            $province_id = substr($address_code, 0, 2) . '0000';
            $city_id = substr($address_code, 0, 4) . '00';
            $district_id = $address_code;

            $update_arr['province_id'] = $province_id;
            $update_arr['city_id']     = $city_id;
            $update_arr['district_id'] = $district_id;
        }

        if ($type > 0 && isset(store_config::$type_arr[$type])) {
            $update_arr['type'] = $type;
        }

        if (empty($update_arr)) {
            return array(false, '请输入相关资料');
        }

        // 测试账号标记
        if (user_helper::is_test_dealers_user($agency_id)) {
            $update_arr['is_enable']  = 0;
        }

        //修改分店信息
        $sotre_id = _model('store')->create($update_arr);

        if ($sotre_id) {
            //更新总店信息
            $update_arr = array(
                'store_num' => $store_cnt + 1,
            );

            if ($store_cnt <= 0) {
                $update_arr['type'] = $type;
                $update_arr['title'] = $title;
            }

            $filter = array(
                'user_id' => $owner_id,
            );
            $user_store_info = _model('user_store')->read($filter);
            if ($user_store_info) {

                $isok = _model('user_store')->update($user_store_info['id'], $update_arr);

                if ($store_cnt <= 0) {
                    // 初始合伙人的商品
                    // 合伙人 store 总店ID
                    // 合伙人 user_store 总店ID FUCK
                    // 合伙人 user_store 总店ID
                    $user_id       = $user_store_info['user_id'];
                    $user_store_id = $user_store_info['id'];
                    store_helper::init_store_goods_price($user_id, $user_store_id);
                }
            }

            $ret = array(
                'store_id'  => $sotre_id,
                'owner_id'  => $owner_id,
                'user_id'   => $ret_user['user_id'],
                'user_name' => $user_name,
                'password'  => $ret_user['password'],
            );

            $password =  $ret_user['password'];

            // 第一个分店，密码应该下发总店密码
            if ($store_cnt == 0) {
                global $mc_wr;
                $password  = $mc_wr->get('store_passowrd_'.$owner_id);
                $user_name = $user_owner['user_name'];
                $mobile    = $user_owner['mobile'];
            }

            // $mobile = $user_owner['mobile'];
            //             $marketing_user_info = user_helper::get_user_info($marketing_id);
            //             $agency_user_info    = user_helper::get_user_info($agency_id);

            //             // 下发短信需要的店铺信息

            //             // 店铺的完整标题
            //             $sms_store_info['store_title'] = $title.$title_branch;
            //             // 店铺的名字
            //             $sms_store_info['user_name']   = $user_name;
            //             // 店铺的密码
            //             $sms_store_info['passowrd']    = $password;
            //             // 发给谁，总店的号码
            //             $sms_store_info['mobile']      = $mobile;

            //             // 下发短信，市场人员信息
            //             $sms_market_info['market_user_name'] = $marketing_user_info['realname'];
            //             $sms_market_info['market_user_id']   = $marketing_id;
            //             $sms_market_info['market_mobile']    = $marketing_user_info['mobile'];

            //             // 下发短信，经销商信息
            //             $sms_agency_info['agency_mobile'] = $agency_user_info['mobile'];
            //             $sms_agency_info['agency_id']     = $agency_id;
            //             $sms_agency_info['user_name']     = $agency_user_info['realname'];

            //             _widget('store.message')->market_create_store_message($sms_store_info, $sms_market_info, $sms_agency_info);

            return array(true, $ret);
        }

        return array(false, '创建店铺失败');
    }


}
?>
